home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!elroy.jpl.nasa.gov!swrinde!mips!dimacs.rutgers.edu!aramis.rutgers.edu!mcgrew
- From: mcgrew@aramis.rutgers.edu (Charles Mcgrew)
- Newsgroups: comp.sources.sun
- Subject: v03i007: Catcher 1.0 - patches
- Message-ID: <May.14.13.31.15.1991.29137@aramis.rutgers.edu>
- Date: 14 May 91 17:31:17 GMT
- Organization: Rutgers Univ., New Brunswick, N.J.
- Lines: 331
- Approved: mcgrew@aramis.rutgers.edu
-
- Submitted-by: news@trantor.harris-atd.com (News stuff)
- Posting-number: Volume 3, Issue 7
- Archive-name: catcher/patch01
-
-
- My apologies to those of you who built catcher only to discover that
- it wouldn't even work with the samples I packed with it. I have since
- fixed several minor but fatal bugs, and this patch should give you a
- much happier tool.
-
- Again, my apologies for such a buggy first release.
-
- Chuck Musciano ARPA : chuck@trantor.harris-atd.com
- Harris Corporation Usenet: ...!uunet!x102a!trantor!chuck
- PO Box 37, MS 3A/1912 AT&T : (407) 727-6131
- Melbourne, FL 32902 FAX : (407) 729-3363
-
- A good newspaper is never good enough,
- but a lousy newspaper is a joy forever. -- Garrison Keillor
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of shell archive."
- # Contents: patch
- # Wrapped by chuck@melmac on Tue Jan 29 12:41:23 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patch' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patch'\"
- else
- echo shar: Extracting \"'patch'\" \(8362 characters\)
- sed "s/^X//" >'patch' <<'END_OF_FILE'
- X*** Makefile.orig Tue Jan 29 12:39:44 1991
- X--- Makefile Tue Jan 22 07:32:58 1991
- X***************
- X*** 43,49 ****
- X install: catcher $(MAN)/catcher.$(MANEXT)
- X cp catcher $(BIN)
- X chmod 755 $(BIN)/catcher
- X- cp catcher.info $(HELPDIR)
- X
- X $(MAN)/catcher.$(MANEXT): catcher.man
- X cp -p catcher.man $(MAN)/catcher.$(MANEXT)
- X--- 43,48 ----
- X*** Imakefile.orig Tue Jan 29 12:39:47 1991
- X--- Imakefile Tue Jan 22 07:32:57 1991
- X***************
- X*** 20,26 ****
- X ComplexProgramTarget(catcher)
- X
- X install:: install.man
- X- $(INSTALL) -c $(INSTMANFLAGS) catcher.info $(HELPDIR)/catcher.info
- X
- X manual:
- X cd doc; make PRINT="$(PRINT)" PRINTER="$(PRINTER)" manual
- X--- 20,25 ----
- X*** README.orig Tue Jan 29 12:39:47 1991
- X--- README Tue Jan 29 12:37:00 1991
- X***************
- X*** 107,109 ****
- X--- 107,115 ----
- X *********************************************************************************
- X
- X 1.0 16 Jan 91 Original release
- X+
- X+ 1.0a 29 Jan 91 Patch 1
- X+ Fixed Imakefile
- X+ Corrected bug in parser
- X+ Corrected handling of suffix string
- X+ Renamed ungetc to last_char in lex.c
- X*** lex.c.orig Tue Jan 29 12:39:53 1991
- X--- lex.c Tue Jan 29 12:33:55 1991
- X***************
- X*** 52,59 ****
- X {"value", VALUE},
- X {"window", WINDOW_}};
- X
- X-
- X-
- X PRIVATE struct {char first;
- X char next;
- X int name;
- X--- 52,57 ----
- X***************
- X*** 73,85 ****
- X curr_file = "stdin";
- X f = stdin;
- X line_count = 1;
- X! ungetc = -1;
- X return(TRUE);
- X }
- X else if (f = fopen(path, "r")) {
- X curr_file = strsave(path);
- X line_count = 1;
- X! ungetc = -1;
- X return(TRUE);
- X }
- X else
- X--- 71,83 ----
- X curr_file = "stdin";
- X f = stdin;
- X line_count = 1;
- X! last_char = -1;
- X return(TRUE);
- X }
- X else if (f = fopen(path, "r")) {
- X curr_file = strsave(path);
- X line_count = 1;
- X! last_char = -1;
- X return(TRUE);
- X }
- X else
- X***************
- X*** 92,99 ****
- X { register char c;
- X static int first = TRUE;
- X
- X! if (ungetc != -1)
- X! c = ungetc, ungetc = -1;
- X else if (f == NULL)
- X return(EOF);
- X else {
- X--- 90,97 ----
- X { register char c;
- X static int first = TRUE;
- X
- X! if (last_char != -1)
- X! c = last_char, last_char = -1;
- X else if (f == NULL)
- X return(EOF);
- X else {
- X***************
- X*** 182,188 ****
- X *p++ = c;
- X while (isalnum(c = getch()) || c == '_')
- X *p++ = c;
- X! ungetc = c;
- X *p = '\0';
- X temp = strsave(buf);
- X for (p = buf; *p; p++)
- X--- 180,186 ----
- X *p++ = c;
- X while (isalnum(c = getch()) || c == '_')
- X *p++ = c;
- X! last_char = c;
- X *p = '\0';
- X temp = strsave(buf);
- X for (p = buf; *p; p++)
- X***************
- X*** 220,226 ****
- X while (isdigit(c = getch()))
- X *p++ = c;
- X *p = '\0';
- X! ungetc = c;
- X yylval.ival = atoi(buf);
- X RETURN(INTEGER);
- X }
- X--- 218,224 ----
- X while (isdigit(c = getch()))
- X *p++ = c;
- X *p = '\0';
- X! last_char = c;
- X yylval.ival = atoi(buf);
- X RETURN(INTEGER);
- X }
- X***************
- X*** 240,246 ****
- X for (c1 = getch(), j = 1; punc[i + j].first == c; j++)
- X if (c1 == punc[i + j].next)
- X RETURN(punc[i + j].name);
- X! ungetc = c1;
- X RETURN(punc[i].name);
- X }
- X yyerror("Invalid character in source file: %c (0x%02x)", c, c);
- X--- 238,244 ----
- X for (c1 = getch(), j = 1; punc[i + j].first == c; j++)
- X if (c1 == punc[i + j].next)
- X RETURN(punc[i + j].name);
- X! last_char = c1;
- X RETURN(punc[i].name);
- X }
- X yyerror("Invalid character in source file: %c (0x%02x)", c, c);
- X*** parse.y.orig Tue Jan 29 12:39:58 1991
- X--- parse.y Tue Jan 29 12:33:56 1991
- X***************
- X*** 30,42 ****
- X
- X EXPORT int parse_errors_occured;
- X
- X! EXPORT Catch config = {NULL, NULL, "Catcher", NULL, '$', '{', '}', NULL, NULL};
- X
- X PRIVATE char *get_last_token();
- X
- X PRIVATE char *curr_file;
- X PRIVATE int line_count = 1;
- X! PRIVATE char ungetc = -1;
- X
- X PRIVATE Command *curr_cmd;
- X PRIVATE Option *curr_opt;
- X--- 30,42 ----
- X
- X EXPORT int parse_errors_occured;
- X
- X! EXPORT Catch config = {NULL, NULL, "Catcher 1.0a", NULL, '$', '{', '}', NULL, NULL};
- X
- X PRIVATE char *get_last_token();
- X
- X PRIVATE char *curr_file;
- X PRIVATE int line_count = 1;
- X! PRIVATE char last_char = -1;
- X
- X PRIVATE Command *curr_cmd;
- X PRIVATE Option *curr_opt;
- X***************
- X*** 59,66 ****
- X
- X %token LBRACE RBRACE
- X
- X! %token BY CHOICE COMMAND DEFAULT DELIMITER EXCLUSIVE FINISH HORIZONTAL ICON_ ICON_MASK INIT LABEL
- X! %token MESSAGE NONEXCLUSIVE NUMERIC OPTIONAL OUTPUT PARAMETER START SUFFIX TEXT TO VALUE WINDOW_
- X
- X %type <chval> anon_choice choice
- X %type <cpval> command_name delimiter icon icon_mask label message suffix text_init value
- X--- 59,66 ----
- X
- X %token LBRACE RBRACE
- X
- X! %token BY CHOICE COMMAND DEFAULT DELIMITER EXCLUSIVE HORIZONTAL ICON_ ICON_MASK INIT LABEL
- X! %token MESSAGE NONEXCLUSIVE NUMERIC OPTIONAL OUTPUT PARAMETER SUFFIX TEXT TO VALUE WINDOW_
- X
- X %type <chval> anon_choice choice
- X %type <cpval> command_name delimiter icon icon_mask label message suffix text_init value
- X***************
- X*** 383,389 ****
- X
- X { char buf1[1024], buf2[1024];
- X
- X! sprintf(buf1, "%s: line %d: ", curr_file, line_count - ((ungetc == '\n')? 1 : 0));
- X sprintf(buf2, s1, s2, s3, s4, s5, s6, s7);
- X strcat(buf1, buf2);
- X if (strcmp(s1, "syntax error") == 0) {
- X--- 383,389 ----
- X
- X { char buf1[1024], buf2[1024];
- X
- X! sprintf(buf1, "%s: line %d: ", curr_file, line_count - ((last_char == '\n')? 1 : 0));
- X sprintf(buf2, s1, s2, s3, s4, s5, s6, s7);
- X strcat(buf1, buf2);
- X if (strcmp(s1, "syntax error") == 0) {
- X*** patchlevel.h.orig Tue Jan 29 12:40:00 1991
- X--- patchlevel.h Tue Jan 29 12:11:30 1991
- X***************
- X*** 0 ****
- X--- 1,29 ----
- X+ /************************************************************************/
- X+ /* Copyright 1987-1991 by Chuck Musciano and Harris Corporation */
- X+ /* */
- X+ /* Full ownership of this software, and all rights pertaining to */
- X+ /* the for-profit distribution of this software, are retained by */
- X+ /* Chuck Musciano and Harris Corporation. You are permitted to */
- X+ /* use this software without fee. This software is provided "as */
- X+ /* is" without express or implied warranty. You may redistribute */
- X+ /* this software, provided that this copyright notice is retained, */
- X+ /* and that the software is not distributed for profit. If you */
- X+ /* wish to use this software in a profit-making venture, you must */
- X+ /* first license this code and its underlying technology from */
- X+ /* Harris Corporation. */
- X+ /* */
- X+ /* Bottom line: you can have this software, you can use it, you */
- X+ /* can give it away. You just can't sell any or all parts of it */
- X+ /* without prior permission from Harris Corporation. */
- X+ /************************************************************************/
- X+
- X+ /************************************************************************/
- X+ /* */
- X+ /* Patch Comments */
- X+ /* 0 Initial release */
- X+ /* comp.sources.x: Volume 11, Issues 6-10 */
- X+ /* */
- X+ /* 1 Bug fixes; see README for details */
- X+ /* comp.sources.x: Volume 11, Issue ? */
- X+ /* */
- X+ /************************************************************************/
- X*** process.c.orig Tue Jan 29 12:40:01 1991
- X--- process.c Tue Jan 29 12:33:57 1991
- X***************
- X*** 340,350 ****
- X { char *path;
- X FILE *f;
- X
- X! path = (char *) malloc(strlen(config.suffix) + 22);
- X strcpy(path, "/tmp/catcher.XXXXXX");
- X mktemp(path);
- X! strcat(path, ".");
- X! strcat(path, config.suffix);
- X if ((f = fopen(path, "w")) == NULL)
- X error("cannot open %s for writing: %s", path, sys_errlist[errno]);
- X else if (fwrite(data, 1, strlen(data), f) != strlen(data)) {
- X--- 340,352 ----
- X { char *path;
- X FILE *f;
- X
- X! path = (char *) malloc((config.suffix? strlen(config.suffix) : 0) + 22);
- X strcpy(path, "/tmp/catcher.XXXXXX");
- X mktemp(path);
- X! if (config.suffix) {
- X! strcat(path, ".");
- X! strcat(path, config.suffix);
- X! }
- X if ((f = fopen(path, "w")) == NULL)
- X error("cannot open %s for writing: %s", path, sys_errlist[errno]);
- X else if (fwrite(data, 1, strlen(data), f) != strlen(data)) {
- END_OF_FILE
- if test 8362 -ne `wc -c <'patch'`; then
- echo shar: \"'patch'\" unpacked with wrong size!
- fi
- # end of 'patch'
- fi
- echo shar: End of shell archive.
- exit 0
-
- Chuck Musciano ARPA : chuck@trantor.harris-atd.com
- Harris Corporation Usenet: ...!uunet!x102a!trantor!chuck
- PO Box 37, MS 3A/1912 AT&T : (407) 727-6131
- Melbourne, FL 32902 FAX : (407) 729-3363
-
- A good newspaper is never good enough,
- but a lousy newspaper is a joy forever. -- Garrison Keillor
-